<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function wait(n) {
            return new Promise(res => {
                setTimeout(() => {
                    res(`等待了${n}毫秒`)
                }, n)
            })
        }

        function waitFunc() {
            return wait(1000)
                .then(res => {
                    console.log(res)
                    return wait(2000)
                })
                .then(res => {
                    console.log(res)
                    return wait(3000)
                })
                .then(res => {
                    console.log(res)
                })
        }
        waitFunc()

        async function waitAsync() {
            const res1 = await wait(1000)
            console.log(res1)
            const res2 = await wait(2000)
            console.log(res2)
        }
        waitAsync()

        Promise.all([wait(1000), wait(2000), wait(300)]).then(console.log)
        Promise.race([wait(1000), wait(2000), wait(300)]).then(console.log)


        
    </script>
</body>

</html>